// generated 2005/9/11 21:59:16 CST by xihels@163.com
//


#ifndef _USERINFOWINDOW_HH
#  define _USERINFOWINDOW_HH

// Since all your widgets were private I made them all public.
// To differentiate between accessable (e.g. entries, output labels)
// and unaccessible widgets (e.g. static labels, containers)
// you should use the 'visibility' property (only visible in C++ mode)


#if !defined(GLADEMM_DATA)
#define GLADEMM_DATA 
#include <gtkmm/accelgroup.h>

class GlademmData
{  

    Glib::RefPtr<Gtk::AccelGroup> accgrp;
    public:

    GlademmData(Glib::RefPtr<Gtk::AccelGroup> ag) : accgrp(ag)
    {  
    }

    Glib::RefPtr<Gtk::AccelGroup>  getAccelGroup()
    {  return accgrp;
    }
};
#endif //GLADEMM_DATA

#include <gtkmm/window.h>
#include <gtkmm/entry.h>
#include <gtkmm/comboboxtext.h>
#include <gtkmm/comboboxentrytext.h>
#include <gtkmm/label.h>
#include <gtkmm/image.h>
#include <gtkmm/table.h>
#include <gtkmm/frame.h>
#include <gtkmm/radiobutton.h>
#include <gtkmm/box.h>
#include <gtkmm/textview.h>
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/checkbutton.h>
#include <gtkmm/notebook.h>
#include <gtkmm/button.h>
#include <gtkmm/buttonbox.h>
#include <gtkmm/liststore.h>


class MainWindow;
class QQSession;
class GetUserInfoReplyPacket;

class UserinfoWindow: public Gtk::Window
{  

    private:
	GlademmData *gmm_data;
	class Gtk::Window * userinfoWindow;
	class Gtk::Entry * entryAge;
	class Gtk::ComboBoxEntryText * comboboxSex;
	class Gtk::ComboBoxEntryText * comboboxProvince;
	class Gtk::Label * labelUid;
	class Gtk::Entry * entryUid;
	class Gtk::Entry * entryNickname;
	class Gtk::Label * labelNickname;
	class Gtk::Label * labelAge;
	class Gtk::Label * labelSex;
	class Gtk::Label * labelCountry;
	class Gtk::Label * labelProvince;
	class Gtk::Label * labelCity;
	class Gtk::Entry * entryCity;
	class Gtk::Label * labelZip_code;
	class Gtk::Entry * entryZip_code;
	class Gtk::Image * imageFace;
	class Gtk::ComboBoxEntryText * comboboxCountry;
	class Gtk::Table * tableBase;
	class Gtk::Frame * frameBase;
	class Gtk::Label * labelBase;
	class Gtk::Label * labelEmail;
	class Gtk::Entry * entryEmail;
	class Gtk::Entry * entryAddress;
	class Gtk::Label * labelAddress;
	class Gtk::Entry * entryPhone;
	class Gtk::Label * labelPhone;
	class Gtk::Label * labelHomepage;
	class Gtk::Entry * entryHomepage;
	class Gtk::Entry * entryMobile;
	class Gtk::Label * labelMobie;
	class Gtk::Table * tableContact;
	class Gtk::Frame * frameContact;
	class Gtk::RadioButton * radiobuttonPublic;
	class Gtk::RadioButton * radiobuttonFriend;
	class Gtk::RadioButton * radiobuttonPrivate;
	class Gtk::HBox * hboxShowtype;
	class Gtk::Label * labelShowinfo;
	class Gtk::Frame * frameShowinfo;
	class Gtk::VBox * vboxContact;
	class Gtk::Label * labelContact;
	class Gtk::Label * labelName;
	class Gtk::Entry * entryName;
	class Gtk::Label * labelZodiac;
	class Gtk::ComboBoxText* comboboxZodiac;
	class Gtk::Entry * entrySchool;
	class Gtk::Label * labelBlood;
	class Gtk::ComboBoxText * comboboxBlood;
	class Gtk::ComboBoxEntryText * comboboxOccupation;
	class Gtk::Label * labelHoroscope;
	class Gtk::ComboBoxText * comboboxHoroscope;
	class Gtk::TextView * textviewIntro;
	class Gtk::ScrolledWindow * scrolledwindowIntro;
	class Gtk::Label * labelSchool;
	class Gtk::Label * labelOccupation;
	class Gtk::Label * labelIntro;
	class Gtk::Table * tableDetails;
	class Gtk::Frame * frameDetails;
	class Gtk::Label * labelDetails;
	class Gtk::Label * labelOldPasswd;
	class Gtk::Entry * entryOldPasswd;
	class Gtk::CheckButton * checkbuttonModify;
	class Gtk::Entry * entryNewPasswd;
	class Gtk::Label * labelNewPassed;
	class Gtk::Label * labelRetellPasswd;
	class Gtk::Entry * entryRetell;
	class Gtk::Table * tablePasswd;
	class Gtk::Label * labelPasswd;
	class Gtk::Frame * framePasswd;
	class Gtk::RadioButton * radiobuttonAny;
	class Gtk::RadioButton * radiobuttonAuth;
	class Gtk::RadioButton * radiobuttonNo;
	class Gtk::VBox * vboxAuthType;
	class Gtk::Label * labelAuthType;
	class Gtk::Frame * frameAuthType;
	class Gtk::VBox * vboxSecurity;
	class Gtk::Label * labelSecurity;
	class Gtk::Notebook * notebook1;
	class Gtk::Button * buttonModify;
	class Gtk::Button * buttonClose;
	class Gtk::HButtonBox * hbuttonbox1;
	class Gtk::VBox * vbox1;

    public:

	UserinfoWindow(QQSession& _session, bool _isSelf = false);

	~UserinfoWindow();

	void refreshInfo(const GetUserInfoReplyPacket& packet);
    private:
	bool on_delete_event(GdkEventAny *);
	void on_buttonClose_clicked();
    private:

	QQSession&  session;
	bool	    isSelf;
};
#endif
